/*
泛型:
    指在定义函数、接口或类的时候，不预先指定具体的类型，而在使用的时候再指定具体类型的一种特性。

需求:
  创建一个函数, 实现功能: 根据指定的数量 count 和数据 value ,
  创建一个包含 count 个 value 的数组
*/
(function () {
    function createArray(count, value) {
        var arr = [];
        for (var index = 0; index < count; index++) {
            arr.push(value);
        }
        return arr;
    }
    var arr1 = createArray(3, 'abc');
    var arr2 = createArray(3, 12.34);
    console.log(arr1, arr2); // ['abc', 'abc', 'abc'] [12.34, 12.34, 12.34]
    console.log(arr1[0].length2); // 3
    console.log(arr2[0].toFixed2(1)); // 12.3
})();
(function () {
    /*
    泛型函数
    1. 定义泛型: 在定义的函数名右侧  <T>
    2. 使用泛型: 在定义函数的参数/返回值/函数体中
    3. 指定泛型的具体类型: 调用函数时函数名右侧
    */
    function createArray(count, value) {
        var arr = [];
        for (var index = 0; index < count; index++) {
            arr.push(value);
        }
        return arr;
    }
    var arr1 = createArray(3, 12.34);
    console.log(arr1[0].toFixed(1));
    var arr2 = createArray(3, 'abc');
    console.log(arr2[1].length);
})();
